package main

import "fmt"

func worker(ch1, ch2 <-chan int, stopCh chan struct{}) {
	for {
		select {
		case <-ch1:
			fmt.Println("ch1")
		case <-stopCh: // 接收到停止信号，退出
			return
		case <-ch2:
		priority:
			for {
				select {
				case <-ch1:
					fmt.Println("ch1") // 在接收 ch2 前，再次尝试接收 ch1
				default:
					break priority // 如果 ch1 无 ，则跳出 for 循环，执行 ch2
				}
			}

			fmt.Println("ch2")
		}
	}
}

func main() {

}
